<template>

  <div class="employees-container">
    <div class="app-container">
      <upload-excel :on-success="handleSuccess" />
    </div>
  </div>
</template>

<script>
// importEmployee
import { formatExcelDate } from '@/utils/index'// 格式化时间
import { importEmployee } from '@/api/employees'// 接口
export default {
  name: 'Excel',
  methods: {
    // 文件导入之前判断文件大小的函数  :before-upload="beforeUpload"

    // 导入成功以后的回调函数
    async handleSuccess({ results, header }) {
      console.log(results)
      const arr = this.transExcel(results)
      //   console.log(arr)// arr就是最后要传给后台的数据
      const res = await importEmployee(arr)
      //   console.log(res.message)
      this.$router.push('/employees')
      this.$message.success(res.message)
    },
    // 格式化导入的excel文件--传递给后端
    transExcel(results) {
      // 传入的results是[{中文:值,时间:2322},{中文:值,时间:2322}]
      // 需要转成英文的key--枚举数据
      const userRelations = {
        '入职日期': 'timeOfEntry',
        '手机号': 'mobile',
        '姓名': 'username',
        '转正日期': 'correctionTime',
        '工号': 'workNumber',
        '部门': 'departmentName',
        '聘用形式': 'formOfEmployment'
      }

      return results.map(item => {
        const obj = {}// 最终要返回的每个对象
        // 把中文key 转化成英文的key
        const contentKeys = Object.keys(item)// [中文,时间] 循环遍历数组的每一项,找到对应的英文名 把英文名返回到数组
        contentKeys.forEach(key => {
          const transKey = userRelations[key]// 取出每个对应的英文key
          // 判断是时间(入职,转正时间),时间的话需要处理一下时间 formatExcelDate()
          if (transKey === 'timeOfEntry' || transKey === 'correctionTime') {
            obj[transKey] = new Date(formatExcelDate(item[key]))// 将入职和转正时间转化后端要的形式,并插入到obj的属性
          } else {
            obj[transKey] = item[key]
          }
        })
        return obj
      })
    }

  }

}
</script>

<style>

</style>
